<?php
// app 的操作类

namespace app\api\controller;

use think\Controller;
use think\Request;
use  app\api\model\appmanager as appModel; //引入数据模型
use think\Validate;
use app\api\model\login as userModel; //用户表

class AppManager extends BaseApi
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

        //
        // 给一个用户id
        $params = input();
        if (!$params['id']) {
            # code...
            $this->fail('请先登录');
        }


        // 如果有id
        // 查询数据库中是否有这个id
        $id = $params['id'];
        $res = userModel::where('id', $id)
            ->select();
        if (count($res) == 0) {
            # code...表中不存在该数据 直接返回失败
            $this->fail('非法访问', 10005);
        }

        //查询当前用户下的数据
        $model = new appModel();
        // 查找所有的数据
        $res =  $model
        // ->with('appdevices')
        ->where('manager_id', $id)
        ->order('id desc')->select();

        // 查询目前已经注册的数量
        // foreach($res as $k=>$v){
        //     $this->ok($v);
        //     $appdevices = $v['appdevices'];
        //     foreach($appdevices as $arrk=>$arrv){

        //     }
        // }
        
        $this->ok($res);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        // $model = new appModel();
        // appModel::destroy(20);
        // $data = $model->withTrashed()->select();
        // dump($data);
        // return '1';
        //
        // 添加一条数据
        $param = input();
        // $savadata = [
        //     "app_name" => "测试名字",
        //     "app_bundle_id" => "com.xhajsj.ss",
        //     "start_time" => 1587113442,
        //     "end_time" => 1587113442,
        //     "manager_id" => 1,
        //     "manager_name" => "admin",
        //     "update_time" => 1587113442
        // ];
        $savadata = $param;
        // return json($param);
        //验证规则
        $rules = [
            'app_name' => 'require',
            'app_bundle_id' => 'require',
            'start_time' => 'require',

            'end_time' => 'require',
            'manager_id' => 'require',
            'manager_name' => 'require',

            // 'update_time'=>'require',
        ];
        $val = new Validate($rules);
        $res = $val->check($savadata);
        if (!$res) {
            $msg = $val->getError();
            $this->fail($msg);
        }



        //最后需要保存的数据
        $model = new appModel();

        //看数据库中是否已经存在bundle id
        $res = $model->where('app_bundle_id',$param["app_bundle_id"])->where('app_name',$param["app_name"])->select();
        if(count($res) != 0){
            $this->fail('bundle id 已经存在，请使用其他bundle id！');
        }

        //已注册数据不能修改
        unset($savadata['register_count']);

        $res =  $model->allowField(true)->save($savadata);
        // dump($res);
        $this->ok($res);
        // return json($param);

    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit()
    {
        //
        $param = input();
        $id = $param['appid'];
        // 更新一条数据
        $savadata = $param;
        //  return json($param);
        //验证规则
        $rules = [
            'app_name' => 'require',
            'app_bundle_id' => 'require',
            'start_time' => 'require',

            'end_time' => 'require',
            'manager_id' => 'require',
            'manager_name' => 'require',


        ];
        $val = new Validate($rules);
        $res = $val->check($savadata);
        if (!$res) {
            $msg = $val->getError();
            $this->fail($msg);
        }
        //最后需要保存的数据
         //已注册数据不能修改
         unset($savadata['register_count']);

        $model = new appModel();
        $res = $model->allowField(true)
            ->update($savadata, ['id' => $id], true);
        if (!$res) {
            # code...
            $this->fail('编辑失败');
        }
        $this->ok(1);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
        $param = input();
        $id = $param['id'];
        // $this->ok($id);
        $list = appModel::where('id', $id)->select();
        if (count($list) == 0) {
            $this->fail('不存在该数据');
        }
        $res =  appModel::destroy($id);
        $this->ok($res);
    }
    public  function appInfo()
    {
        # code...
        $param = input();
        if (!$param['bundle']) {
            $this->fail('参数缺失，非法访问！');
        }
        $id = $param['bundle'];
        $model = new appModel();
        $res = $model->field('id,start_time,end_time,mark')->where('app_bundle_id', $id)->select();
        if (count($res) == 0) {
            $this->fail('查询的信息不存在，请联系管理员');
        }
        $this->ok($res);
    }
}
